deltas: Expose the filename parameter
authorGatis Paeglis <gatis.paeglis@qt.io>
Thu, 24 Nov 2016 14:59:36 +0000 (15:59 +0100)
committerAtomic Bot <atomic-devel@projectatomic.io>
Mon, 27 Feb 2017 22:10:26 +0000 (22:10 +0000)
The C API (ostree_repo_static_delta_generate) knows what to do
with it, but this parameter was never exposed via command line
tool.

Closes: https://github.com/ostreedev/ostree/issues/695
Closes: #703
Approved by: jlebon

src/ostree/ot-builtin-static-delta.c
tests/test-delta.sh

index c8843a652e03e4e77976a3d933206ea9c72474cc..1019f06f368ec298da1d854d1a2b7d3d5c8aa1c4 100644 (file)
@@ -33,6 +33,7 @@ static char *opt_min_fallback_size;
 static char *opt_max_bsdiff_size;
 static char *opt_max_chunk_size;
 static char *opt_endianness;
+static char *opt_filename;
 static gboolean opt_empty;
 static gboolean opt_swap_endianness;
 static gboolean opt_inline;
@@ -71,6 +72,7 @@ static GOptionEntry generate_options[] = {
   { "min-fallback-size", 0, 0, G_OPTION_ARG_STRING, &opt_min_fallback_size, "Minimum uncompressed size in megabytes for individual HTTP request", NULL},
   { "max-bsdiff-size", 0, 0, G_OPTION_ARG_STRING, &opt_max_bsdiff_size, "Maximum size in megabytes to consider bsdiff compression for input files", NULL},
   { "max-chunk-size", 0, 0, G_OPTION_ARG_STRING, &opt_max_chunk_size, "Maximum size of delta chunks in megabytes", NULL},
+  { "filename", 0, 0, G_OPTION_ARG_STRING, &opt_filename, "Write the delta content to PATH (a directory).  If not specified, the OSTree repository is used", "PATH"},
   { NULL }
 };
 
@@ -322,6 +324,9 @@ ot_static_delta_builtin_generate (int argc, char **argv, GCancellable *cancellab
       if (opt_inline)
         g_variant_builder_add (parambuilder, "{sv}",
                                "inline-parts", g_variant_new_boolean (TRUE));
+      if (opt_filename)
+        g_variant_builder_add (parambuilder, "{sv}",
+                               "filename", g_variant_new_bytestring (opt_filename));
 
       g_variant_builder_add (parambuilder, "{sv}", "verbose", g_variant_new_boolean (TRUE));
       if (opt_endianness || opt_swap_endianness)
index bb523b47f6c7d9f165ee9c51c5d67d00dcde03b7..6d041f722af72ba7a1074f6df6c52cacd12ae737 100755 (executable)
@@ -121,6 +121,14 @@ if ${CMD_PREFIX} ostree --repo=repo static-delta generate --from=${origrev} --to
     assert_not_reached "static-delta generate --from=${origrev} --empty unexpectedly succeeded"
 fi
 
+${CMD_PREFIX} ostree --repo=temp-repo init --mode=archive
+${CMD_PREFIX} ostree --repo=temp-repo pull-local repo
+${CMD_PREFIX} ostree --repo=temp-repo static-delta generate --empty --to=${newrev} --filename=some.delta
+assert_has_file some.delta
+${CMD_PREFIX} ostree --repo=temp-repo static-delta list > delta-list.txt
+assert_file_has_content delta-list.txt 'No static deltas'
+rm temp-repo -rf
+
 echo 'ok generate'
 
 ${CMD_PREFIX} ostree --repo=repo static-delta show ${origrev}-${newrev} > show.txt